Nonvolatile storage devices are used as primary and secondary data storage in computer systems. Some existing nonvolatile storage devices implement arrays of flash memory cells based on floating-gate transistor technology, such as NAND flash memory cells, to store electronic data in a format that can persist without a continuous power supply. The data typically consists of computer instructions, numerical data, application programs, operating systems, and the like.
The implementation of certain types of nonvolatile storage devices requires that fixed-size sections, or blocks, of memory cells with previously-stored data be erased before being reprogrammed with new data. Typically, the size of these blocks is larger than the size of fixed-size sections, or pages, of memory cells that can be programmed. Storage devices utilizing NAND flash memory typically employ a logical construct consisting of multiple blocks of memory cells over which garbage collection activities are coordinated, for example, a blockset including an integer number of NAND blocks (also referred to as erase blocks).
Storage devices that implement NAND flash memory conventionally attempt to approximately balance host write throughput with reclamation (garbage collection) activities that reclaim free space available for programming for future write operations. Typical systems temporarily or intermittently reduce host-write throughput as needed to maintain relatively acceptable maximum command response times and to allow reclamation activities to keep up with ongoing host writes.
The conventional process of moving valid data remaining in portions of a block of memory cells before erasing the block and making the block available for reprogramming, collectively referred to as garbage collection, results in nonvolatile memory write operations that do not directly serve host (user) write requests. The total amount of data written in the nonvolatile memory over time—including host-request write operations, garbage collection write operations, and other storage device write operations—as a ratio to the amount of host (user) data written is known as write amplification.
Since the program/erase (P/E) lifecycle, or endurance, of typical nonvolatile memory cells is limited, some existing nonvolatile storage devices have implemented measures to extend the lifespan, or the perceived lifespan, of the nonvolatile storage devices. For example, typical nonvolatile storage devices present less total logical address space to hosts than the actual capacity of the memory cells in the device, known as over-provisioning. In addition, some nonvolatile storage devices limit the quantity of host writes over time based on the current amount of storage space available for programming or reprogramming, a practice known as throttling.
However, particular nonvolatile storage use cases can be sensitive to write latency and require high write performance on an on-demand basis for limited amounts of data. For example, limited-capacity, on-demand write bandwidth can be required to save the main memory contents and processor state during the initiation of system hibernation mode. As a result, host-write throttling can hinder desired performance regarding certain use cases.